Starten des Publishers über den Hotfolder
Der speedata Publisher kann als »Watchdog« ein Verzeichnis beobachten, um bei Veränderungen automatisch zu starten. Ein solches Verzeichnis wird auch hotfolder genannt. Man kann Regeln angeben, was passiert, wenn eine bestimmte Datei in dieses Verzeichnis geschrieben wird.
Der Publisher löscht die XML-Datei aus dem Verzeichnis, sobald sie verarbeitet wird. |
Der Hotfolder wird wie die der Publisher über die Datei publisher.cfg
konfiguriert.
[hotfolder]
hotfolder = /Users/speedata/tmp/hotfolder
events = layout\.xml:run(runpublisher);data\.xml:run(runpublisher)
Die Konfiguration besteht aus zwei Teilen: Der Eintrag hotfolder
zeigt zum (leeren) Verzeichnis, in das die Dateien geschrieben werden.
Die Einträge unter events
folgen dem Muster:
<Regulärer Ausdruck>:run(<Programmname>)
Mehrere Einträge werden mit Semikolon getrennt.
Im Beispiel wird, wenn eine der Dateien layout.xml
oder data.xml
in das Verzeichnis /Users/speedata/tmp/hotfolder
geschrieben wird, das Programm runpublisher
angestoßen.
Das Programm runpublisher
könnte ein Shellskript sein, das den Publisher aufruft:
#!/bin/sh
{
echo "Running speedata Publisher ($1)"
cd /Users/speedata/tmp/hotfolder
sp
} > /tmp/publisher.log 2> /tmp/publisher.err
In der Regel ist dies natürlich etwas umfangreicher, für einfache Anwendungen reicht dies aus.
Das Programm, das in run()
konfiguriert ist, bekommt als einziges Argument den vollen Pfad zur Datei im Hotfolder übergeben.
Es müssen nicht nur XML-Dateien sein, auf die der Watchdog des Publishers reagiert. Es können beliebige Dateien sein, die über den Regulären Ausdruck angegeben werden. |